package cn.sskxyz.mongodb.zlib;

import java.io.InputStream;

public interface Codec {
	
	/**
	 * 数据比较小的时候使用
	 * @param content 原始数据
	 * @return base64 编码后的压缩数据
	 */
	String compress(byte[] content);
	
	/**
	 * 
	 * 
	 * @param in  原始数据流
	 * @return  base64编码之后的压缩数据
	 */
	String compressToBase64String(InputStream in);
	
	
	/**
	 * 
	 *  适合大数据量时使用
	 * @param in 原始数据
	 * @return  压缩后并且经过base64编码后的输入流
	 */
	InputStream compressToBase64Stream(InputStream in);
	
	
	/**
	 * 
	 * 解压后数据比较小时可以用
	 * @param content
	 * @return
	 */
	byte[] decompress(byte[] content);
	
	InputStream decompressToStream(byte[] content);
}
